﻿using Abp.Application.Services.Dto;
using Mt.Site.Application.Dto;
using Mt.Site.Application.Modules.Dto;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Mt.Site.Application.Modules
{
    public interface IModuleAppService  : IBackEndAppService
    {
        Task CreateAsync(CreateModuleDto input);

        Task CopyNewOneAsync(EntityDto<Guid> input);

        Task UpdateAsync(UpdateModuleDto input);

        Task DeleteAsync(EntityDto<Guid> input);

        Task DeleteListAsync(List<Guid> input);

        Task SetStatus(SetStatusInput input);

        Task<GetModuleForEditOutput> GetAsync(NullableIdDto<Guid> input);

        Task<PagedResultDto<PagedModuleDto>> GetPagedModules(PagedModuleInput input);

        Task SwapSortNumber(SwapSortNumberInput input);
        Task SetNewSorNumber(NewSortNumberInput input);


        Task UpdateOrCreateConfigFileAsync(ConfigFileDto input);
        Task<string> GetConfigFileContentAsync();
    }
}
